
package com.google.api.ads.adwords.jaxws.v201206.cm;

import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;


/**
 * 
 *       Use this service in conjunction with {@linkplain UserListCriterion user list
 *       criteria} to display ads to users that have previously expressed interest
 *       in your website. This style of advertising is called
 *       <a href="//support.google.com/adwords/bin/topic.py?topic=1713923"
 *       >remarketing</a>.
 *       
 *       <p>
 *       A {@linkplain RemarketingUserList remarketing user list} contains the
 *       list of users that have triggered a specific
 *       {@linkplain RemarketingUserList#conversionTypes conversion event} on
 *       your website.</p>
 *       
 *       <p>
 *       A {@linkplain LogicalUserList logical user list} contains the set of
 *       users constructed by logically combining existing user lists.</p>
 *       
 *       <p>
 *       {@linkplain ExternalRemarketingUserList External remarketing
 *       user lists} expose user lists created using the DoubleClick
 *       platform and are only available for certain advertisers.</p>
 *     
 * 
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.2.4-b01
 * Generated source version: 2.2
 * 
 */
@WebService(name = "UserListServiceInterface", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206")
@XmlSeeAlso({
    ObjectFactory.class
})
public interface UserListServiceInterface {


    /**
     * 
     *         Returns the list of user lists that meet the selector criteria.
     *         
     *         @param serviceSelector The selector specifying the {@link UserList}s to return.
     *         @return A list of UserList entities which meet the selector criteria.
     *         @throws ApiException if problems occurred while fetching UserList information.
     *       
     * 
     * @param serviceSelector
     * @return
     *     returns com.google.api.ads.adwords.jaxws.v201206.cm.UserListPage
     * @throws ApiException_Exception
     */
    @WebMethod
    @WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206")
    @RequestWrapper(localName = "get", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206", className = "com.google.api.ads.adwords.jaxws.v201206.cm.UserListServiceInterfaceget")
    @ResponseWrapper(localName = "getResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206", className = "com.google.api.ads.adwords.jaxws.v201206.cm.UserListServiceInterfacegetResponse")
    public UserListPage get(
        @WebParam(name = "serviceSelector", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206")
        Selector serviceSelector)
        throws ApiException_Exception
    ;

    /**
     * 
     *         Adds and updates user lists.
     *         
     *         <p class="note"><b>Note:</b> {@link UserListOperation} does not support the
     *         <code>REMOVE</code> operator. To disable a user list, set its
     *         {@link UserListMembershipStatus} to <code>CLOSED</code>.</p>
     *         @param operations The operations to apply.
     *         @return The mutated UserList entities.
     *       
     * 
     * @param operations
     * @return
     *     returns com.google.api.ads.adwords.jaxws.v201206.cm.UserListReturnValue
     * @throws ApiException_Exception
     */
    @WebMethod
    @WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206")
    @RequestWrapper(localName = "mutate", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206", className = "com.google.api.ads.adwords.jaxws.v201206.cm.UserListServiceInterfacemutate")
    @ResponseWrapper(localName = "mutateResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206", className = "com.google.api.ads.adwords.jaxws.v201206.cm.UserListServiceInterfacemutateResponse")
    public UserListReturnValue mutate(
        @WebParam(name = "operations", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201206")
        List<UserListOperation> operations)
        throws ApiException_Exception
    ;

}
